package DP.子序列;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import static MyUtils.MHUtils.*;
import static MyUtils.MHMoban.*;

/*
看草图的黄色res+位置
让 1 2 3 不重复加入
 */
public class 复习_子集 {
    @Test
    public void test() {
        System.out.println(subsets(new int[]{1,2,3}));
    }

    List<List<Integer>> res = new ArrayList<>();
    List<Integer> tmp = new ArrayList<>();
    int[] p;
    int n;
    public List<List<Integer>> subsets(int[] nums) {
        p = nums;
        n=nums.length;

        int cI=0, fa=-999999;
        bT(cI,fa);
        res.add(new ArrayList<>());
        return res;
    }

    private void bT(int cI, int fa) {
        if(cI==n){
            return;
        }
        for (int i = cI; i < n; i++) {
            tmp.add(p[i]);
            //必须在这加 单独的[1][2][3]不会重复
            res.add(new ArrayList<>(tmp));
            bT(i+1, p[i]);
            tmp.remove(tmp.size()-1);
        }
    }
}
